package com.bite.spring.demo.Controller;


import com.bite.spring.demo.MessageInfo;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/message")
public class MessageController {

    // 暂时保存在内存中 刷新后依旧保留信息
    private List<MessageInfo> messageInfoList = new ArrayList<>();

    /**
     * 接受前端的用户信息
     * 从响应的body中获取
     * @return 这个接口返回的数据格式是 JSON，转成json格式：produces = "application/json"
     */
    @PostMapping(value = "/publish",produces = "application/json")

    /**
     * 如果是@PostMapping("/publish")，抓包能看到接口反应数据格式是text/plain
     * 如果在后端代码不变的情况下，则需要前端修改一下代码，将string类型转为json对象
     * 在messagewall.html line89有注释
     */

    public String publish (@RequestBody MessageInfo messageInfo) {

        // 判断是否未空
        if (!StringUtils.hasLength(messageInfo.getFrom())
                || !StringUtils.hasLength(messageInfo.getTo())
                || !StringUtils.hasLength(messageInfo.getMessage())) {
            return "{\"ok\": 0}";
        }
        messageInfoList.add(messageInfo);
        return "{\"ok\": 1}";
    }

    @GetMapping(value = "/getList")
    public List<MessageInfo> getList() {
        if (messageInfoList != null) return messageInfoList;
        return null;
    }
}
